Total Complexity | 9 |
Total Lines | 38 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | import { selectionCell, setCellAttr } from 'prosemirror-tables'; |
||
6 | export default class TCellAlignMenuItemDispatcher extends AbstractMenuItemDispatcher { |
||
7 | constructor(align) { |
||
8 | super(); |
||
9 | this.align = align; |
||
10 | } |
||
11 | |||
12 | isAvailable(schema) { |
||
13 | return !!schema.nodes.table; |
||
14 | } |
||
15 | |||
16 | getMenuItem(schema) { |
||
17 | if (!this.isAvailable(schema)) { |
||
18 | throw new Error('Table not available in schema!'); |
||
19 | } |
||
20 | |||
21 | return new MenuItem({ |
||
22 | command: (state, dispatch) => { |
||
23 | const cell = selectionCell(state); |
||
24 | if (!cell) { |
||
25 | return false; |
||
26 | } |
||
27 | if (cell.nodeAfter.attrs.align === this.align) { |
||
28 | return setCellAttr('align', '')(state, dispatch); |
||
29 | } |
||
30 | return setCellAttr('align', this.align)(state, dispatch); |
||
31 | }, |
||
32 | icon: svgIcon(`format-align-${this.align}`), |
||
33 | label: LANG.plugins.prosemirror[`label:table-cell-align-${this.align}`], |
||
|
|||
34 | isActive: (state) => { |
||
35 | const cell = selectionCell(state); |
||
36 | if (!cell) { |
||
37 | return false; |
||
38 | } |
||
39 | return cell.nodeAfter.attrs.align === this.align; |
||
40 | }, |
||
41 | }); |
||
42 | } |
||
43 | } |
||
44 |
This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.
To learn more about declaring variables in Javascript, see the MDN.